2025 Web Engines Hackfest

Web Engines Hackfest 2025

2-4 June | A Coruña, Galicia, Spain

The hackfest

The 2025 Web Engines Hackfest will take place in A Coruña, Galicia, Spain from Monday, June 2nd to Wednesday, June 4th.

There is no fee to participate either remotely or onsite. But if you are planning to participate onsite, please fill out the registration form.

Web Engines Hackfest 2022 - Hacking Room

Participants

This event brings together people working on the different browsers and related standards to discuss ideas and plans. Members from all parts of the web platform community including people working on the different engines (Chromium/Blink/V8, Safari/WebKit/JSC, Firefox/Gecko/SpiderMonkey, Servo, Ladybird), on the testing side (WPT, Test262), on specifications (W3C, WhatWG, TC39), on web compat (webcompat.com), or on documentation (MDN Web Docs, web.dev) are welcome to join us. Check the list of confirmed attendees for more details.

Web Engines Hackfest 2022 - Palexco Terrace

2025 Edition

2-4 June 2025

The Web Engines Hackfest 2025 will be a hybrid event hosted onsite at Palexco, with talks and breakout sessions also available for remote participation.

This is a three-day event. The event will have some presentations. The rest of the event will have an unconference format focused on topics and tasks defined by the people attending.

Web Engines Hackfest 2022 - Breakout session

The Event

Participants should feel free to propose any topic which interests them. Some topics from previous years include: WebKit Ports (WebKitGTK and WPE), Chromium (Servicification and Ozone/Wayland), JavaScript (V8, JSC and SpiderMonkey), Web Predictability and Compatibility, WPT, Multimedia, Media Source, WebRTC, CSS, MathML, Graphics, WebGL, Fonts, Accessibility, Servo, WebAssembly.

Visit the hackfest wiki page for scheduling, breakout sessions, and other information related to the event.

Web Engines Hackfest 2019 - Talk

Call For Papers

The Web Engines Hackfest will accept proposals for presentations and breakout sessions for this year’s event. Both onsite and remote presentations and breakout sessions are welcome and can cover any topic related to the web platform.

Web Engines Hackfest 2018 - Discussion

Previous Hackfests

The Web Engines Hackfest, formery known as the WebkitGTK+ Hackfest, has been held annually since 2009. Information from previous years can be found on the following pages: 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2021, 2022, 2023, and, 2024.

In addition, you can watch the talks from previous editions on our YouTube channel.

Talks

Oliver Medhurst

Compiling JavaScript ahead-of-time

by Oliver Medhurst

Oliver Medhurst

Compiling JavaScript ahead-of-time

by Oliver Medhurst

Date: 2025/06/02 - 10:30 CEST (UTC+2)

Essentially all JS engines today are just-in-time, but what about compiling ahead-of-time like C++ or Rust? Previously dismissed, it is having a resurgence with new open-source projects like Porffor which I’ll discuss in this talk!

Andreu Botella Luca Casonato

WinterTC: a standard for server-side runtimes

by Andreu Botella & Luca Casonato

Andreu Botella Luca Casonato

WinterTC: a standard for server-side runtimes

by Andreu Botella & Luca Casonato

Date: 2025/06/02 - 11:00 CEST (UTC+2)

Server-side and edge JavaScript runtimes (such as Node.js, Deno, Bun, Cloudflare Workers…) have been adopting more and more web APIs over time. However, the web specifications that define these APIs are typically written with browsers in mind, without much regard for server-side runtimes, which has led to differences among those implementations.

In 2022, we started working towards solving this problem in a W3C Community Group called WinterCG, which also specified a Minimum Common API for server-side and edge runtimes, so that code can be written against a standard that all such runtimes would support. However, due to its charter WinterCG could not publish standards, which is why in December 2024 we took the next step in that direction, which was to move WinterCG into an Ecma Technical Committee called WinterTC. We explore why this move was necessary, what are the goals of WinterTC, and what we are working on.

Leo Kettmeir

JSR: under the hood & native support in the ecosystem

by Leo Kettmeir

Leo Kettmeir

JSR: under the hood & native support in the ecosystem

by Leo Kettmeir

Date: 2025/06/02 - 12:00 CEST (UTC+2)

The JavaScript Registry (JSR) is a modern alternative to npm—natively supported in pnpm, Yarn and Deno—yet still unsupported in npm and Node.js, leaving a gap in the module ecosystem and making it awkward for module authors.

This talk will go into how various aspects of JSR are architected, its capabilities and feature, how current tooling supports it, and how more can add support natively.

Joyee Cheung

Bridging CommonJS and ESM in Node.js

by Joyee Cheung

Joyee Cheung

Bridging CommonJS and ESM in Node.js

by Joyee Cheung

Date: 2025/06/02 - 12:30 CEST (UTC+2)

ESM has become stable in Node.js since 2020, but the adoption of it in the ecosystem turned out to be slower than expected and the interoperability between CommonJS and ESM has been a common source of pain for developers - interestingly, one of the important factor was the lack of support of require(esm) in Node.js. This gap started to be filled since 2024 and by May 2025, all supported release lines of Node.js would support require(esm). In this talk, we will take a look at history of CommonJS/ESM interoperability, how require(esm) works in Node.js under the hood, and the challenges we encountered during its rollout.

Cross-Engine Contributions at Scale: How newcomers accelerated Temporal and Upsert in SpiderMonkey, V8, and Boa

by Jonas Haukenes, Mikhail Barash & Shane Carr

Cross-Engine Contributions at Scale: How newcomers accelerated Temporal and Upsert in SpiderMonkey, V8, and Boa

by Jonas Haukenes, Mikhail Barash & Shane Carr

Date: 2025/06/02 - 13:00 CEST (UTC+2)

Join us for a story through our journey implementing TC39 proposals in SpiderMonkey, V8, and Boa.

We will examine how easy or difficult it is for new contributors to engage with each project, highlighting the challenges of navigating engine internals, what helped us get unstuck, and how we translated that experience into a community-focused tutorial. We will demonstrate the practical impact in implementing Upsert and discuss how Rust smoothed the onramp for contributing Temporal in Boa and V8.

We would like to thank Daniel Minor, Kevin Ness, and Philip Chimento for helping bring these projects to life.

Versioned Web Components

by Christian Ulbrich

Versioned Web Components

by Christian Ulbrich

Date: 2025/06/02 - 15:30 CEST (UTC+2)

While Web Components are far from new, they are seeing more and more adaption for a multitude of use cases, both as containers for micro-frontends as well as a way of building framework agnostic UI libraries. One of the biggest challenges is, that there is no way of overriding existing web components, or more precisely custom elements can only be defined once for a certain tag name. While there is a proposal for alleviating this, called scoped custom element registries, it never came really to fruition and has several problems.

I want to show a proposal of how Web Components can be versioned, i.e. how a custom element with the same tag can be updated in the life cycle of a web application as well ““versioned””. I have extensively worked on web components in the past and I have a very rough prototype, that can show case this technique and I am looking for feedback + input, so that we will find a way in the future to address this issue and make web components more powerful.

Adrián Pérez de Castro

Jumping Over the Garden Wall - WPE WebKit on Android

by Adrián Pérez de Castro

Adrián Pérez de Castro

Jumping Over the Garden Wall - WPE WebKit on Android

by Adrián Pérez de Castro

Date: 2025/06/02 - 16:00 CEST (UTC+2)

Introduction and history of the WPE-Android project, and how having a flexible, embeddable Web engine allowed making it work in an unexpected platform, bringing the original Android system web engine back. But, what for?

Bocoup logo

Automating Assistive Tech with Standards

by Mike Pennisi

Bocoup logo

Automating Assistive Tech with Standards

by Mike Pennisi

Date: 2025/06/02 - 17:00 CEST (UTC+2)

AT Driver is a protocol for controlling assistive technology (AT) like screen readers. It’s being developed as a component of the ARIA-AT project but with a much wider audience in mind.

In this talk, we’ll explore the unique challenges of automating ATs, share the latest implementation status, review concurrent standards work that also surfaces the experience of AT users, and discuss the future of these efforts.

Thomas Steiner

Built-in AI APIs for the Web

by Thomas Steiner

Thomas Steiner

Built-in AI APIs for the Web

by Thomas Steiner

Date: 2025/06/02 - 17:30 CEST (UTC+2)

There are many use cases for AI, ranging from transcribing audio, describing images, getting writing assistance, having texts proofread, to translating content, and many more, including general prompting of an AI model for all sorts of purposes. For realizing these use cases, you broadly have three options: (i), send your data to an AI model running somewhere on a powerful server in the cloud, (ii), download a possibly large model file to the client and run it locally, or, (iii), use shared models built into a device or browser, which is the topic of this talk. On the Chrome team, we’re proposing a number of APIs [1] that we and partners we’ve worked with think would be worthwhile to have as common Web platform APIs. In this talk, I’ll give an overview of these APIs and briefly demo their implementation in Chrome, and then want to open the floor for some general discussion and feedback.

[1] List of API proposals

  • webmachinelearning/prompt-api
  • webmachinelearning/writing-assistance-apis
  • webmachinelearning/translation-api

Attendees

  • Aapo Alasuutari
  • Abhijeet Kandalkar
  • Adrián Mora Rodríguez
  • Adrián Pérez de Castro
  • Alejandro G. Castro
  • Alexander Dunaev
  • Alice Boxhall
  • Alicia Boya Garcia
  • Andreu Botella
  • Angel M Miguel
  • Ankesh Bharti
  • Anna Weine
  • Anne van Kesteren
  • Antonio Gomes Netto
  • Bernd Kaiser
  • Brian Kardell
  • Byungwoo Lee
  • Carlos Bentzen
  • Carmen Cañas
  • Casiano Rodriguez-Leon
  • Chengzhong Wu
  • Chris Cuellar
  • Christian Liebel
  • Christian Ulbrich
  • Claire Hurst
  • Claudio Saavedra
  • Daniel Ehrenberg
  • Daniel Huigens
  • Dave Vandyke
  • Delan Azabani
  • Diego González
  • Diego Pino Garcia
  • Dietrich Ayala
  • Dmitry Bezhetskov
  • Dominik Röttsches
  • Dongxu Liu
  • Eemeli Aro
  • Emilio Cobos Álvarez
  • Enrique Ocaña González
  • Eri Pazos Pérez
  • Frédéric Wang
  • Gengming Liu
  • Georges Basile Stavracas Neto
  • Giorgio Maone
  • Gyuyoung Kim
  • Haili Bai
  • Henrique Ferreiro
  • Ian Grunert
  • Ioanna M. Dimitriou H.
  • Jacob
  • Jacobo Aragunde Pérez
  • Jan Bajana
  • Javier Fernandez Garcia-Boente
  • Jeongeun Kim
  • Jesse Alama
  • John Xu
  • Jon Butler
  • Jon Kuperman
  • Jonas Haukenes
  • Jonas Kruckenberg
  • Jonas Menken
  • Jonathan Kew
  • Jonathan Schwender
  • José Dapena Paz
  • Joyee Cheung
  • Juan J. Sanchez
  • Justin Michaud
  • Keeley Hammond
  • Keith Cirkel
  • Kyungsun Lee
  • Leo Kettmeir
  • Lino Le Van
  • Lorenzo Tilve
  • Luca Casonato
  • Luke Hubbard
  • Luke Warlow
  • Maksim Sisov
  • Manuel Rego
  • Marais Rossouw
  • Mario Sánchez-Prada
  • Martin Alvarez-Espinar
  • Martin Robinson
  • Max Ihlenfeldt
  • Maxim Yaskevich
  • Miguel Gomez
  • Mike Pennisi
  • Mikhail Barash
  • Miyoung Shin
  • Ms2ger
  • Mukilan Thiyagarajan
  • Nguyen Viet Do
  • Nick Pfeiffer
  • Nick Yamane
  • Nico Burns
  • Nicolò Ribaudo
  • Nikolas Zimmermann
  • Nina Kolesa
  • Oliver Medhurst
  • Olivier Tilloy
  • Oriol Brufau
  • Pablo Saavedra Rodiño
  • Pablo Santana Gonzalez
  • Patrick Griffis
  • Pawel Lampe
  • Philip Chimento
  • Philippe Normand
  • Pier Angelo Vendrame
  • Przemyslaw Gorszkowski
  • Rafael Fernández López
  • Rakhi Sharma
  • Raphael Kubo da Costa
  • Rob Buis
  • Robert Kroeger
  • Robin Berjon
  • Roger Zanoni
  • Romulo Cintra
  • Rui Hildt
  • Sam Weinig
  • Sergey Rubanov
  • Shane F Carr
  • sideshowbarker
  • Simon Pena
  • Simon Wülker
  • snek
  • Stefan Reinhold
  • Stephen Chenney
  • Thomas Steiner
  • Tom Schuster
  • Ujjwal Sharma
  • Valerie Young
  • Vincent Hilla
  • Vitaly Dyachkov
  • Vlad Zahorodnii
  • Xabier Rodríguez Calvar
  • Xiaoqian Wu
  • Yeunjoo Choi
  • Youenn Fablet
  • Yutao Liu

Venue

Picture of Palexco building
Palexco (Palacio de Exposiciones y Congresos)
Muelle de Transatlánticos s/n, 15003, A Coruña, Galicia (Spain)

Travel And Accommodation

✈︎
Fly to A Coruña

A Coruña Airport (LCG) is connected to Geneva, London/Gatwick, Milan, Barcelona and Madrid.

To get to the venue from A Coruña Airport:

  • Taxi - 15 min - Airport taxi stand.

    Fare: The cost is usually 15-20€.
    Payment method: Cash or credit card (ask beforehand).

  • Bus - 20 min - Airport bus stop.

    Use the Airport-City Center Bus line (Line A4, old 4051, Centro da cidade - Aeroporto.).
    Stop at "Praza de Ourense", "Obelisco" or "Porta Real". Any of them are close to Palexco.
    Fare: 1.55€ (0.88€ with metropolitan card).
    Payment method: Only cash, buy on the bus.
    Schedules:

    • On working days, both from A Coruña and from the airport, buses run from 7:15 to 21.45 every half hour. Early bus at 05:00 (from city center) and 06:15. Night bus at 23:15, 23:30 and 00:30.
    • On Saturdays, Sundays and bank-holidays they leave from A Coruña every hour from 6:30 to 23:30, and from the airport from 6:00 to 23:00 also every hour. Early bus to the airport at 05:00.

✈︎
Fly to Santiago

Santiago Airport (SCQ) is connected to Madrid, Barcelona, Amsterdam/Schiphol, Basel/Mulhouse, Barcelona, Brussels, Dublin, Edinburg, Frankfurt, Memmingen, Geneva, London, Milan/Bergamo, Bologna, Paris, Bordeaux, Marsella and Zurich.

About 50km from to Coruña, it's a good option if you have a direct flight, but requires to go to A Coruña from there.

To get to the venue from Santiago Airport:

  • Bus/Taxi + Train + Bus - 40 min (bus)/20 min (taxi) + 30 min (train) + 10 min (bus)

    Bus from Santiago Airport to train station - Airport bus stop
    Stop at Train Station ("Hórreo (estación)" "Estación de Tren/Ferrocarril").
    Fare: 1€.
    Payment method: Cash.
    Schedules.

    Taxi from Santiago Airport to train station - Airport taxi stand.
    Fare: Fixed fare 21€.
    Payment method: Cash or credit card (ask beforehand).

    Train from Santiago to A Coruña
    Fare: Depends on the schedule.
    Payment method: Cash or credit card buying tickets at the train station. Or buy them in advance at refe.com or thetrainline.com (Warning: On Sunday's afternoons/evengins or Monday's mornings the train can be full so booking in advance is recommended).

    Bus from Train Station to Palexco - Line 5 (direction "Durmideiras/Adormideras")
    Pick the bus at "Estación Trens Glorieta" (bus stop number 119).
    Stop at "Autoridade Portuaria". Fare: 1.30€.
    Payment method: Cash.

  • Taxi - 45 min

    Direct taxi from Santiago Airport to A Coruña - Airport taxi stand.
    Fare: Around 80€.
    Payment method: Cash, credit card (ask beforehand), or book in advance at taxigalicia.com.

  • Direct bus - 60 min

    Bus from Santiago Airport to A Coruña - Airport bus stop
    Fare: 6.65€.
    Payment method: Cash or online (in Spanish).
    Schedules (quite limited).

✈︎
Fly to Madrid

Madrid-Barajas Airport (MAD) is connected to many places in the world.

To get to A Coruña from Madrid Airport:

  • Train + Train - 15min - 3.5-10 hours

    Train from Madrid Airport to Chamartín train station - Cercanías from Terminal 4 using line C1 or C10
    Fare: The cost is usually 3€.
    Payment method: Cash or credit card.

    Train from Madrid Chamartín train station to A Coruña.
    There are a variety of trains between Madrid and A Coruña that take anywhere from 3 and half hours to over 10 hours.
    You should try to buy your train ticket between Madrid and A Coruña in advance.
    It’s not recommended to have a tight connection between plane and train.
    Fare: Depends on the train and timetable.
    Payment method: Cash or credit card.

✈︎
Fly to Porto (Portugal)

Porto Airport (OPO) is connected to several big cities like: New York, Toronto, Montreal, Rio, Sao Paulo, Londo, Frankfurt, Helsinki, Paris.

To get to the venue from Porto Airport:

  • Rent a car - 3 hours
    Porto airpot is about 300km away from A Coruña.
  • Bus - 5 hours
    Fare: 50€.
    Payment method: Buy ticket online.

🚌
Bus

Bus connections to A Coruña are available from all major cities in Spain.

  • Bus + Bus (10 min): Bus tickets to get to A Coruña are available from ALSA amongst other carriers.

    Bus from Bus Station to Palexco - Line 1A (direction "Abente e Lago")
    Pick the bus at "Cabaleiros, Estación Bus" (bus stop number 074).
    Stop at "Autoridade Portuaria". Fare: 1,30€.
    Payment method: Cash.

🚆
Train

Train connections to A Coruña are available from all major cities in Spain.

🚗
Car

It is also possible to drive to A Coruña.

🏨
Accommodation

There are a bunch of nice hotels around the event venue (Palexco).

Options:

🏥
Covid rules

The Web Engines Hackfest welcomes the web community back to in-person events, we continue to prioritize the safety of our participants and staff.

The Web Engines Hackfest organizers continuously monitor local guidelines and regulations related to COVID-19. The changeable nature of the pandemic means that regular updates to this policy may be necessary. We will inform registered participants about any substantial changes to this document.

By attending, you agree to abide by applicable Spanish regulations for indoor activities and the Web Engines Hackfest health & safety rules, and to conduct yourself in accordance with all provided instructions. This will include, but is not limited to:

  • refraining from coming to the event if you have COVID-19 or its symptoms, or if you are required to be in self-isolation or quarantine by COVID-19 regulations in Spain or at the location you are travelling from;
  • complying with the mask-wearing policy communicated at the event; even if when regulations have removed the obligation to wear masks, the organization establishes masks as recommended indoors;
  • following instructions on physical distancing and crowd circulation at the event;
  • observing good hand-washing and hygiene etiquette.

More information can be found at: sanidad.gob.es.

💡
Notes

  • Usual timetables. Lunch time: 13:00 - 15:30. Dinner time: 20:30 - 22:30. Note that you won't be able to find a restaurant open for lunch at 12:00 or for dinner at 18:00, neither at 19:00; thus you might want to start your day a bit "later" than usual. Main reason behind this is that A Coruña is in the same timezone as central Europe, and sunrise and sunset times are somehow shifted with regard to common standards in other parts of the world.
  • Language. The official languages in A Coruña are Galician and Spanish. Not everybody is able to understand or speak English (in the bus, taxi, hotel, etc). The Web Engines Hackfest is run in English.
  • Climate. A Coruña has a climate heavily moderated by the Atlantic Ocean. Average temperatures are around 10ºC (51ºF) in winter and 19ºC (66ºF) during summer. (See more info at Wikipedia).
  • Tourism. Tourism A Coruña website.

Sponsors

Host & Organizer

Igalia logo

Gold Sponsors

Igalia logo
Mullvad Browser logo

Silver Sponsors

Huawei logo

Bronze Sponsors

Arm logo

Other Sponsors

Arm logo
Igalia logo

Code Of Conduct

Igalia is a project which attempts to make space for equality within a system that is highly unequal. In order to do this, we must counter the structural discrimination that surrounds us in the world and, in particular, in our industry. Our desire is expressed through our foundational principles, our internal processes, and guidelines for how we treat each other. The ultimate goal of the code of conduct is to keep Igalia welcoming for all those who interact with us in good faith and to be a positive and fulfilling influence in the lives of the people within our community.

This code of conduct has three sections. In the first section, we present the ideals we believe should underlie interactions within Igalia. In the second section, we describe types of unacceptable behavior. Finally, in the third section, we describe how to report problems, so that we can take steps to ensure that Igalia remains both safe and healthy.

This policy applies in all of the following contexts:

  • The Igalia offices
  • All internal and external meetings including assemblies and the partners council
  • All mailing lists, bug trackers, wikis, and all other online services
  • Igalia sponsored social gatherings such as summits
  • Igalia hosted conferences, hackathons, and other public and private events
  • At all times where a person is acting as a representative of Igalia, including sponsored external events, communities, or using a company e-mail address

Expected Behavior

Be Respectful and Kind

Always assume that others are competent and trying to do their best. Look out for one another and offer help when it is appropriate and welcome. The words you choose are important, so choose them carefully. Be aware that words and imagery have different meanings across countries, cultures, and communities. If you are unsure whether something is appropriate, it is better to keep it to yourself. Be quick to apologize and learn from your mistakes.

Include Everyone

Encourage all voices. Amplify new points of view and listen actively. If you find yourself dominating a discussion, it is especially important to step back and make room for other voices. When repeating ideas and suggestions, give credit to the person who introduced them. Be aware of the amount of time taken up by the dominant members of the group. When it is possible, make sure there are alternative ways to contribute.

Seek Understanding and Consensus

Discussion and debate are essential to Igalia, but we have to remember that we are not trying to “win” disagreements. Always try to encourage constructive discussions and inclusive thinking so that we are working with a wide range of perspectives. At the same time, reject intolerance and the dehumanization of others.

Speak Up

The responsibility for maintaining a safe environment is shared among all of us. If you think something violates the code of conduct, say something.

Unacceptable Behavior

  • Unwelcome, offensive or hurtful comments or jokes related to age, gender, gender identity and expression, sexual orientation, disability, illnesses, mental illness, neuro(a)typicality, physical appearance, body size, race, religion, national origin, nationality, ancestry, or pregnancy
  • Unwelcome, offensive, or hurtful comments or jokes regarding a person’s lifestyle choices and practices
  • Deliberate misgendering, use of “dead” or rejected names, or use of inappropriate nicknames
  • Gratuitous or off-topic sexual images or behavior, non-consensual physical contact and simulated physical contact, or any other type of unwelcome sexual attention
  • Violence, threats of violence, or incitement of violence, including encouraging others to commit self-harm
  • Deliberate intimidation or the sabotage of work
  • Stalking or unwelcome photography, recording, or logging of online activity
  • Sustained disruption of discussion
  • A pattern of inappropriate social contact, such as requesting/assuming inappropriate levels of intimacy with others
  • Deliberate “outing” of any aspect of a person’s identity without their consent except as necessary to protect vulnerable people from intentional abuse
  • Publication of private and personal (unrelated to work) communication, except when it is used as evidence of a code of conduct violation
  • Retaliation for reporting a code of conduct violation

It is impossible to list all types of unacceptable behavior, but a general rule is that conduct committed in bad faith, which causes harm or distress, or after requests to stop is unacceptable. This includes actions taken without malice. When in doubt, take responsibility for your actions, apologize, and move on. Finally, reporting a violation of the code of conduct does not ever violate the code of conduct.

Reporting

There are several ways that you can report behavior that makes you or others feel unsafe, unwelcome, or excluded. These include:

Emails sent to conduct@igalia.com are received by:

  • Andy Wingo
  • Brenna Brown
  • Danielle Mayabb
  • Eric Meyer
  • Javier Moran

For urgent issues, you may also call +34 951 204 844 and then enter the PIN 1818 followed by the hash sign (#). This will call Andy Wingo, Brenna Brown, and Eric Meyer.

People reported as violating the code of conduct will not take part in the process of handling that report. After the report, immediate action will be taken to ensure the safety and well-being of those involved.

Potential consequences of unacceptable behaviour:

  • Removal from an event
  • Temporary removal from Igalia services or locations
  • Permanent removal from Igalia services or locations
  • Termination of employment